package com.sjy.project.fym.signin.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.sjy.project.fym.signin.domain.FyUserSignin;
import com.sjy.project.fym.signin.domain.FyUserSigninVo;

/**
 * 人员签到打卡记录Mapper接口
 * 
 * @author sjy
 * @date 2022-04-18
 */
public interface FyUserSigninMapper 
{
    /**
     * 查询人员签到打卡记录
     * 
     * @param id 人员签到打卡记录主键
     * @return 人员签到打卡记录
     */
    public FyUserSignin selectFyUserSigninById(Long id);

    /**
     * 查询人员签到打卡记录列表
     * 
     * @param fyUserSignin 人员签到打卡记录
     * @return 人员签到打卡记录集合
     */
    public List<FyUserSignin> selectFyUserSigninList(FyUserSignin fyUserSignin);

    /**
     * 新增人员签到打卡记录
     * 
     * @param fyUserSignin 人员签到打卡记录
     * @return 结果
     */
    public int insertFyUserSignin(FyUserSignin fyUserSignin);

    /**
     * 修改人员签到打卡记录
     * 
     * @param fyUserSignin 人员签到打卡记录
     * @return 结果
     */
    public int updateFyUserSignin(FyUserSignin fyUserSignin);

    /**
     * 删除人员签到打卡记录
     * 
     * @param id 人员签到打卡记录主键
     * @return 结果
     */
    public int deleteFyUserSigninById(Long id);

    /**
     * 批量删除人员签到打卡记录
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteFyUserSigninByIds(String[] ids);
    
    /**
     * 根据场所ID或者队伍ID获取签到相关统计信息
     * @param placeId
     * @param teamId
     * @return
     */
    public Map<String,Object> getSigninStaByPlaceOrTeamId(@Param("placeId") Long placeId,@Param("teamId") Long teamId);
    /**
     * 根据场所ID或者队伍ID获取当前打卡人员清单
     * @param placeId
     * @param teamId
     * @return
     */
    public List<FyUserSigninVo> getSigninListByPlaceOrTeamId(@Param("placeId") Long placeId,@Param("teamId") Long teamId);
}
